package Model;

import Control.VendaControl;
import java.util.ArrayList;
import java.util.Iterator;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class GeradorGraficosMaioresCompradores {
    
    private ArrayList<Cliente> cliente;
    private ArrayList<Integer> qtd;
    
    
    public GeradorGraficosMaioresCompradores(){
        cliente = new ArrayList<>();
        qtd = new ArrayList<>();        
        for(Venda vn : new VendaControl().getVenda()){
            int soma = 0;
            if(!cliente.contains(vn.getClt())){
                cliente.add(vn.getClt());
                for(Venda vd : new VendaControl().getVenda())
                    if(vd.getClt().getNome().equalsIgnoreCase(vn.getClt().getNome()))
                        soma+=somaCompras(vd.getProdutos());
                qtd.add(soma);
            }
        }
    }
    
    private int somaCompras(ArrayList<Produto> produto){
        int soma = 0;
        for(Produto pd : produto)
            soma += pd.getQtd();
        return soma;
    }
    
    public JFreeChart geraGrafico(){
        Cliente clt = new Cliente();
        int quantidade;
        DefaultPieDataset ds = new DefaultPieDataset();
        Iterator itCliente = cliente.iterator();
        Iterator itQtd = qtd.iterator();
        while(itCliente.hasNext() && itQtd.hasNext()){
           clt = (Cliente) itCliente.next();
           quantidade = (int) itQtd.next();
           ds.setValue(clt.getNome(), quantidade);
        }
        JFreeChart graph = ChartFactory.createPieChart("Maiores compradores", ds);
        return graph;
    }
}
